#ifndef _Scene_H_
#define _Scene_H_
#include <QtOpenGL/qgl.h>

#include "Node.h"
#include "Object.h"


using namespace std;

class Scene
{
public:
    vector<Object*> objects;
    Node *bvh; // A bounding volume hierarchy
    int facesPerNode;

    static MaterialLib matlib;    // col�lecci� de materials

    Scene();

    void Init();
    void Render(RenderMode);
    void RenderBVH(int);
    void AddObject(Object*);
    void LoadObject(QString path);
    Point Center();
    float RadiEscena();
    void UpdateAmbientOcclusion(int,bool);
    void UpdateObscurances(int, int, bool,bool);
    int GetVertexSize();
    void UpdateBVH(Object *o);
    void UpdateAllBVH();
};

#endif

